#############################
- __ __ _ ____
- \ \/ /___ _ __ / | |___ \
- \ // _ \ '_ \ | | __) |
- / \ __/ | | | | |_ / __/
- /_/\_\___|_| |_| |_(_)_____|
+ __ __ _ _____
+ \ \/ /___ _ __ / | |___ /
+ \ // _ \ '_ \ | | |_ \
+ / \ __/ | | | | |_ ___) |
+ /_/\_\___|_| |_| |_(_)____/
#############################
- XenDemoCD 1.2
+ XenDemoCD 1.3
University of Cambridge Computer Laboratory
24 Jan 2004
itsel (actually RSIP), but this is part of a larger work package that
isn't ready to release.]
-Next, run the xen UDP console displayer:
-
- xen_read_console
-
-[This is currently output only, but infuture we will have
-bidirectional domain console]
-
Xen has a management interface that can be manipulated from domain0 to
create new domains, control their CPU, network and memory resource
allocations, allocate IP addresses, grant access to disk partitions,
VM block device(s) : "phy:cdrom,hdd,r"
VM cmdline : "ip=128.232.38.51:169.254.1.0:128.232.32.1:255.255.240.0::eth0:off root=/dev/ram0 rw init=/linuxrc 4 LOCALIP=169.254.2.3"
-If you invoke xc_dom_create.py without the '-n' option you should see
-the domain booting on your xen_read_console window.
+xc_dom_create.py will print the local TCP port to which you should
+connect to perform console I/O. A suitable console client is provided
+by the Python module xend.console_client: running this module from the
+command line with <host> and <port> parameters will start a terminal
+session. An alternative is to specify '-c' to xc_dom_create.py, or add
+'auto_console=True' to the defaults file. This will cause
+xc_dom_create.py to automatically become teh console terminal after
+starting the domain.
The 169.254.x.x network is special in that it is the 'link local'
subnet, and is isolated from the external network and hence can only
tried to access physical hardware resources to try setting the
hwclock, system font, run gpm etc.
-[root@commando-0 examples]# ./xc_dom_create.py -?
-Usage: ./xc_dom_create.py <args>
-
-This tool is used to create and start new domains. It reads defaults
-from a file written in Python, having allowed variables to be set and
-passed into the file. Further command line arguments allow the
-defaults to be overridden. The defaults for each parameter are listed
-in [] brackets. Arguments are as follows:
-
-Arguments to control the parsing of the defaults file:
- -f config_file -- Use the specified defaults script.
- Default: ['/etc/xc/defaults']
- -D foo=bar -- Set variable foo=bar before parsing config
- E.g. '-D vmid=3:ip=1.2.3.4'
- -h -- Print extended help message, including all arguments
- -n -- Dry run only, don't actually create domain
-
-The config file /etc/xc/defaults requires the following vars to be defined:
- ip -- List of IP addr(s) for Xen to route to domain
- e.g. -Dip='1.2.3.4,5.6.7.8'
-The following variables may be optionally defined:
- mem -- Adjust initial memory allocation (default 64MB)
- netmask -- Override gateway for kernel ip= command line
- gateway -- Override network for kernel ip= command line
-
-
After it's booted, you should be able to ssh into your new domain from
domain0 using the link local 19.254.x.x address you assigned. If you
assigned a further IP address you should be able to ssh in using that
You can manipulate running domains using the xc_dom_control.py tool.
Invoking it without arguments prints some usage information.
-To see what domains are running, run 'xc_dom_control list'. Using the
+To see what domains are running, run 'xc_dom_control.py list'. Using the
tool you can change scheduling parameters, pause a domain, send it a
shutdown request, or blow it away with the 'destroy' command. You can
even suspend it to disk (but you probably won't have enough memory to
do the latter if you're running off the demo CD).
-Usage: xc_dom_control [command] <params>
-
- stop [dom] -- pause a domain
- start [dom] -- un-pause a domain
- shutdown [dom] -- request a domain to shutdown
- destroy [dom] -- immediately terminate a domain
- pincpu [dom] [cpu] -- pin a domain to the specified CPU
- save [dom] [file] -- suspend a domain's memory to file
- restore [file] -- resume a domain from a file
- list -- print info about all domains
- listvbds -- print info about all virtual block devs
- cpu_bvtset [dom] [mcuadv] [warp] [warpl] [warpu]
- -- set scheduling parameters for domain
- cpu_bvtslice [slice] -- default scheduler slice
- vif_stats [dom] [vif] -- get stats for a given network vif
- vif_addip [dom] [vif] [ip] -- add an IP address to a given vif
- vif_setsched [dom] [vif] [bytes] [usecs] -- rate limit vif bandwidth
- vif_getsched [dom] [vif] -- print vif's scheduling parameters
- vbd_add [dom] [uname] [dev] [mode] -- make disk/partition uname available to
- domain as dev e.g. 'vbd_add phy:sda3 hda1 rw'
- vbd_remove [dom] [dev] -- remove disk or partition attached as 'dev'
+To find usage information for xc_dom_control.py, run the script with
+no arguments.
Troubleshooting Problems
physical network interface. Then:
# xen_nat_enable
-# xen_read_console &
-
-When new domains are created and started, they will send output via
-UDP packets to the local virtual network. Those packets are received
-by xen_read_console running in Domain 0 and output are printed out to
-the standard output.
The xc_dom_create.py program is useful for starting Xen domains.
You can specify configuration files using the -f switch on the command
line arguments to xc_dom_create.py. However, you may find it simplest
to create a separate configuration file for each domain you start.
-When you start domains, you should be able to see XenoLinux boot
-message on standard output with each line prepended with [domain_id].
+xc_dom_create.py will print the local TCP port to which you should
+connect to perform console I/O. A suitable console client is provided
+by the Python module xend.console_client: running this module from the
+command line with <host> and <port> parameters will start a terminal
+session. An alternative is to specify '-c' to xc_dom_create.py, or add
+'auto_console=True' to the defaults file. This will cause
+xc_dom_create.py to automatically become teh console terminal after
+starting the domain.
Manage Running Domains